//package ranking;
//
//import java.sql.ResultSet;
//import java.sql.Statement;
//import java.util.ArrayList;
//import java.util.Calendar;
//import java.util.Date;
//import java.util.Enumeration;
//import java.util.Hashtable;
//
//import vo.Status;
//import vo.User;
//import Constants.Constant;
//import JDBC.DatabaseDao;
//import Service.StatusService;
//import Utils.DateUtils;
//import Utils.FileUtils;
//import Utils.MathUtils;
//import dao.StatusDao;
//import dao.UserDao;
//
//public class ActivityRanking {
//	
//	public static double computeActivity(String userId) {
//		// 所有帖子的【发帖时间范围】
//		String statusTimeRange = StatusDao.getCreatedTimeRange();
//		String startTime = statusTimeRange.split("@")[0];
//		String endTime = statusTimeRange.split("@")[1];
//		Calendar startCal = Calendar.getInstance();
//		startCal.setTime(DateUtils.str2Date(startTime));
//		Calendar endCal = Calendar.getInstance();
//		endCal.setTime(DateUtils.str2Date(endTime));
//
//		// 发帖时间范围总天数
//		int days = DateUtils.intervalDay(startTime, endTime);
//		System.out.println("大家发帖多少天:" + days);
//
//		// 每一天VS发帖数，初始化用户每天的发帖数为0
//		Hashtable<String, Integer> date_count = new Hashtable<String, Integer>();
//		for (int i = 0; i < days; i++) {
//			String date = DateUtils.addDay(startTime, i).split(" ")[0];
//			date_count.put(date, 0);
//			// System.out.println("ww:"+date);
//		}
//
//		// 检索出某用户话题下的所有帖子
//		ArrayList<Status> statuses = StatusService.getByUserId(userId);
//		System.out.println("我发了多少个帖子:" + statuses.size());
//		// 统计用户每天的帖子个数
//		for (int i = 0; i < statuses.size(); i++) {
//			Date createdAt = statuses.get(i).getCreatedAt();
//			String date = DateUtils.date2DateStr(createdAt, "-");
//			if (date_count.containsKey(date))
//				date_count.put(date, date_count.get(date) + 1);
//			else
//				date_count.put(date, 1);
//		}
//
//		// 计算用户的活跃度值，没发扣0.1分，发了给3分
//		double statusActivity = 0.0;
//		Enumeration intervals = date_count.keys();
//		int count = 0;
//		int addCount = 0;
//		int reduceCount = 0;
//		while (intervals.hasMoreElements()) {
//			count++;
//			String date = (String) intervals.nextElement();
//			double increment = 0;
//			if (date_count.get(date) == 0) {
//				increment = Constant.decay;
//				reduceCount++;
//			} else {
//				increment = date_count.get(date) * Constant.statusWeight;
//				addCount++;
//			}
//			statusActivity += increment;
//
//		}
//		System.out.println("statusActivity:" + statusActivity);
//		System.out.println("count:" + count);
//		System.out.println("addCount:" + addCount);
//		System.out.println("reduceCount:" + reduceCount);
//		return MathUtils.precision(statusActivity, 2);
//	}
//
//	public static Hashtable<String, Double> getUserIdActivity() {
//		Hashtable<String, Double> userId_activity = new Hashtable<String, Double>();
//		// TODO:读文件
//		return FileUtils.readHashtableD("userId_activity.txt");
//	}
//
//	public static ArrayList<User> getTopUserIdActivity(int topNumber) {
//		ArrayList<User> users = new ArrayList<User>();
//		// 读取前十名
//		return users;
//	}
//
//	public static void main(String args[]) {
//		System.out.println(GeneralRanking.userRanking2String(getTopUserIdActivity(10)));
//
//	}
//}
